package com.galaxy.payment.config;

import com.wechat.pay.java.core.RSAAutoCertificateConfig;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

/**
 * 微信支付配置
 */
@Data
@Component
@ConfigurationProperties(prefix = "wx.v3pay")
public class WxPayConfig {
    /**
     * 小程序微信公众平台appId
     */
    private String appid;

    /**
     * 商户号
     */
    private String merchantId;

    /**
     * 商户API私钥路径
     */
    private String privateKeyPath;

    /**
     * 商户证书序列号
     */
    private String merchantSerialNumber;

    /**
     * 商户APIV3密钥
     */
    private String apiV3key;

    /**
     * 异步回调地址
     */
    private String notifyUrl;

    /**
     * 创建自动证书配置
     */
    @Bean
    public RSAAutoCertificateConfig rsaAutoCertificateConfig() {
        return new RSAAutoCertificateConfig.Builder()
            .merchantId(this.getMerchantId())
            .privateKeyFromPath(this.getPrivateKeyPath())
            .merchantSerialNumber(this.getMerchantSerialNumber())
            .apiV3Key(this.getApiV3key())
            .build();
    }
}
